草庐IT

c++ - LLDB C++调试

全部标签

c - 在 Win 10 而非 Win 7 中卸载 DLL 时调试崩溃

不完全确定我是否已经解决了这个问题,但这是我所看到的以及我认为正在发生的事情。我有一个主要用C编写的Win32程序,它加载一个C++DLL。该DLL通过COM对象将数据从C程序传递到另一个应用程序——一个可能由DLL本身实例化的对象。所有这一切显然至少在WindowsXP和Windows7中运行良好(可能是Win95和Win98,我需要更深入地回顾代码历史以找出引入此接口(interface)的时间),但在Windows10中程序崩溃在FreeLibrary()调用此DLL期间。在调试器中检查时,DLL_DETACH_PROCESS似乎已成功处理(处理该消息时未执行任何代码)。崩溃发生

c++ - 如何调试程序在 main() 之前崩溃

我在windows8.1上使用QtCreator和visualstudio2015工具包来构建我在Linux上开发和测试的程序,在linux上它工作正常,但在windows上它立即崩溃,我不知道该看什么为。除了QT,我使用的唯一外部库是opengl和glew,所以我不认为是那些。有没有已知的在GNUC++中工作但在MSVC中立即崩溃的东西? 最佳答案 通常这种崩溃与你的程序完全没有关系。这是一个外部库链接问题。我最近在使用OpenSpliceDDS库时遇到了这个问题。在任何事情开始之前,我链接到一个导致段错误的库。我通过一对一链接预

c - 在 C 中执行 shellcode (visual studio 2017

我尝试在C中执行shellcode时遇到问题(基本的reverse_tcp,指向本地地址)。我从基础开始,代码如下:#defineWIN32_LEAN_AND_MEAN#include#include#include#includeintmain(intargc,char*argv[]){unsignedcharshellcode[]=\"\xfd\xab\xd2\xa9\xb1\x29\xe0\xdd\x38\x64\x51\x24\x9d\x0f\xdf""\x8a\xc2\x01\x0d\x2e\x6c\x9b\x86\xa9\x2e\x6f\xd9\xb3\x04\x4a""\

windows - 无法在 Visual Studio 2017 : "Access is denied." 下使用或不使用调试器运行 CMake 可执行文件

我正在尝试在VisualStudio2017的调试器下运行使用CMake生成的解决方案文件构建的程序以调试问题。但是,每当我尝试选择StartDebugging或StartWithoutDebugging时,我都会收到以下错误弹出窗口。Unabletostartprogram'E:\build\someprogram\build\x64\Debug\ALL_BUILDAccessisdenied.乍一看,问题听起来像描述的问题here.然而,据称该错误已在VS201715.5中修复,我目前使用的是15.6.7。编译后的可执行文件的位置不在RAM磁盘或网络驱动器上,而是在物理驱动器上。并

c - 如何在 C 中的 DLL 中执行线程

我创建了一个运行3个工作线程的DLL,主线程处于循环中等待线程完成。线程已创建,但未执行线程。我尝试在使用CreateThread()创建的函数中设置MessageBox函数,但该框没有出现。我也尝试过调试,CreateThread()的返回值有效,因此线程被创建。BOOLWINAPIDllMain(){main();return1;}intmain(){HANDLEh1,h2,h3;h1=CreateThread(first)...h2=CreateThread(second)...h3=CreateThread(third)...WaitForSingleObject(h3,INF

windows - 阻止 MSVC++ 调试错误阻止当前进程?

Windows上任何失败的ASSERT语句都会导致出现以下调试消息并卡住应用程序执行。我意识到这是预期的行为,但它会在headless机器上定期运行,因此可以防止单元测试失败,而是无限期地等待用户输入。是否有注册表项或编译器标志可用于防止此消息框请求用户输入,同时仍允许测试在ASSERT下失败?基本上,我想在不修改任何代码的情况下执行此操作,只需更改编译器或Windows选项。谢谢!MicrosoftVisualC++DebugLibraryASSERThttp://img519.imageshack.us/img519/853/snapshotbu1.png

windows - 通过网络连接到 Visual Studio 远程调试器 (msvsmon) 所需的设置

我们正在尝试跨域进行远程调试,从Windows7机器到WindowsXP家用机器。这些机器使用LogMeInHamachi通过VPN连接在一起。我已经查看了关于彻底设置远程调试的MSDN指南,并且已经克服了很多错误,但我总是遇到障碍。我可以让它进入native调试,但无法进行托管调试以进行身份​​验证。这是我已经完成的事情--Visualstudio和调试监视器以相同的管理员用户身份在各自的计算机上运行--调试/调试。调试器最初拒绝在xp机器上运行,所以我这样运行它:runas/user:debug"c:\josh\msvsmon.exe-nosecuritywarn-noauth-a

C语言,串口阅读器

我想编写一个读取串行端口(V.24)的程序。使用来自串行端口的信息,我需要拆分一个字符串,并将其添加到MySQL数据库中。我不太了解C,所以我需要一些帮助,了解我应该使用哪些函数程序要在windowsXP下运行,我要把它做成服务。谢谢,塞巴斯蒂安 最佳答案 服务很难调试。我建议首先将您的代码编写为普通应用程序-命令行即可-然后,一旦它工作,将其转换为服务(这是一个机械过程)。一般来说,第一次使用C编写的基于WindowsGUI的应用程序是一个PITA。非常挑剔,非常敏感。命令行应用程序或服务会容易得多。

C++过滤调试事件

在C++/Windows中是否有内置的方法来过滤WaitForDebugEvent捕获的事件?WaitForDebugEvent会忽略吗? 最佳答案 不,我认为您不能过滤任何调试事件。调用WaitForDebugEvent的应用程序将获得所有事件。但是,您可以在应用程序中收到任何特定事件后忽略它。 关于C++过滤调试事件,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/458001

c++ - 在 WinDbg 中开始调试的基本设置+任务是什么?

引用我自己的话,来自问题Arethereanybooksthat“teach”WinDbg?:WiththeVisualStudiodebugger,IknowwhereIamatagivenpoint,thatisitisveryeasyandconvenienttosetitupsothatthecurrentbreakpoint(sourcecode)+disassembly+callstack+localvariables+...allmakesensetogether.It'satthispointthatI'dneedsomeadvancesWinDbgcommands,b